Role of Compilers in Computer Architecture
نویسندگان
چکیده
A compiler is a software layer that helps the high level executions that are made in a programming language to be compiled and implemented by the underlying hardware computer architecture. Though a compiler is majorly designed based on the language specification, the hardware that it is going to implement on has a significant role in the compiler design. Effective compilers allow for a more efficient execution of application programs for a given computer architecture, while well-conceived architectural features can support more effective compiler optimization techniques. A well thought-out strategy of tradeoffs between compilers and computer architectures is the key to the successful designing of highly efficient and effective computer systems. From embedded micro-controllers to large-scale multiprocessor systems, it is important to understand the interaction between compilers and computer architectures. The factors in which the compiler and the computer architecture have to agree on are: regularity, orthogonality and compensability. Any issue with these factors result in a tougher task for the compiler designer. So, making an efficient compiler involves the collaborative work of both a compiler designer and the hardware architects who built the computer architecture.
منابع مشابه
The Role of Algorithmic Applications in the Development of Architectural Forms (Case Study:Nine High-Rise Buildings)
The process of developing architectural forms has greatly been changed by advances in digital technology, especially in design tools and applications. In recent years, the advent of graphical scripting languages in the design process has profoundly affected 3D modeling. Scripting languages help develop algorithms and geometrical grammar of shapes based on their constituent parameters. This stud...
متن کاملThe Compiler Forest
We address the problem of writing compilers targeting complex execution environments, such as computer clusters composed of machines with multi-core CPUs. To that end we introduce partial compilers. These compilers can pass sub-programs to several child (partial) compilers, combining the code generated by their children to generate the final target code. We define a set of high-level polymorphi...
متن کاملA Quantitative Evaluation of Maintainability of Software Architecture Styles
Proper decisions play a crucial role in any software architecture design process. An important decision of design stage is the selection of a suitable software architecture style. Lack of investigation on the quantitative impact of architecture styles on software quality attributes is the main problem in using such styles. Consequently, the use of architecture styles in designing is based on th...
متن کاملOptimization Verifying Compilers
Today, compilers play a role of bridge between high/abstract level specification of computation/algorithm and low/concrete level of target architectures. They are responsible for both effectively implementing high level programming concepts and exploiting very concrete high performance engines, where optimizations are very crucial in every respect. However, the growing complexity of modern opti...
متن کاملAn Incremental Approach to Compiler Construction
Compilers are perceived to be magical artifacts, carefully crafted by the wizards, and unfathomable by the mere mortals. Books on compilers are better described as wizard-talk: written by and for a clique of all-knowing practitioners. Real-life compilers are too complex to serve as an educational tool. And the gap between real-life compilers and the educational toy compilers is too wide. The no...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016